const express = require('express');

var router = express.Router();

//针对urser下所有的路由接口
router.use(function (req, res, next) {
  //获取传过来的用户信息
  //let username = req.body.username;
  //从数据库查询
  //let rs = db.getUserinfo(uername)
  // if(rs){next()}
  // else {
  //   res.send('用户不存在')
  // }
  console.log('权限验证')
  next();
})

//针对user下 /:id 的接口做权限验证
router.use('/:id', function (req, res, next) {
  console.log('id 权限验证')
  next();
})

//http://localhost:3000/user/10
// router.get("/:id", function (req, res) {
//   console.log(req.params.id)
//   res.send(req.params.id)
// })


router.get('/getname', function (req, res) {
  // res.setHeader('Content-Type','')
  console.log("get name ...")
  res.json({
    name: 'hanye',
    age: 20
  })
})

//crud: create read update delete

//数据的添加，消息体在body上
//建议全部更新
router.post('/add', function (req, res) {
  //用req.body获取post数据，需要装body-parser中间件
  console.log(req.body);
  res.send(req.body)
})

//获取数据，请求的参数在url地址上，在不同的浏览器上有长度的限制
//长度的限制是浏览器限制的
//http://localhost:3000/user/getinfo?username=hanye&age=20
router.get('/getinfo', function (req, res) {
  //req.query 不需要装任何中间件，或者配置
  console.log(req.query)
  res.send(req.query)
})


//数据的更新，消息体在body 上 
//建议全部更新
router.put('/r1', function (req, res) {
  res.send('r1')
});

//数据的更新，消息体在body 上 
//建议部分更新 {name:'zhangsan',age:20,address:"beijing"}
router.patch('/r2', function (req, res) {
  res.send('r2')
})

//数据的删除，消息体在body上
router.delete('/r3', function (req, res) {
  res.send('r3')
})

//数据的协商，测试服务端的一些功能
router.options('/r4', function (req, res) {
  res.send('r4')
})

// head
// 类似于get请求，返回的响应中没有类容，用于获取报头


router.get('/r5', function (req, res) {
  throw new Error('error message')
})

module.exports = router;